package com.example.express.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.express.domain.ResponseResult;
import com.example.express.domain.bean.OrderEvaluate;
import com.example.express.domain.enums.SysRoleEnum;

/**
 * 订单评价服务业务
 * @author 周欣
 */
public interface OrderEvaluateService extends IService<OrderEvaluate> {

    /**
     * 是否开启单评论功能（初始化）
     * @param orderId
     * @return
     */
    boolean initOrderEvaluate(String orderId);

    /**
     * 是否改变订单评论状态
     * @param orderId
     * @param isOpen
     * @return
     */
    boolean changEvaluateStatus(String orderId, boolean isOpen);

    /**
     * 能否评价订单
     * @param orderId
     * @param userId
     * @param roleEnum 只支持用户和配送员
     * @return
     */
    boolean canEvaluate(String orderId, String userId, SysRoleEnum roleEnum);

    /**
     * 用户评论
     * @param orderId
     * @param userId
     * @param score
     * @param text
     * @return
     */
    ResponseResult userEvaluate(String orderId, String userId, double score, String text);

    /**
     * 配送员评论
     * @param orderId
     * @param courierId
     * @param score
     * @param text
     * @return
     */
    ResponseResult courierEvaluate(String orderId, String courierId, double score, String text);

    /**
     * 获取评论数量
     * @param userId
     * @param roleEnum
     * @return
     */
    int countEvaluate(String userId, SysRoleEnum roleEnum);
}
